home *** CD-ROM | disk | FTP | other *** search
/ Nautilus 1992 July / Nautilus-3-8 / Nautilus-3-8.bin / Tools & Utilities / Techy Stuff / Source ƒ / sky source ƒ / COMET.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-16  |  1.2 KB  |  71 lines

  1. #include "sky.h"
  2.  
  3. halley()
  4. {
  5.     double pturbl, pturbb, pturbr;
  6.     double lograd;
  7.     double dele, enom, vnom, nd, sl;
  8.  
  9.     double sd, ca, sa;
  10.  
  11.     object = "Halley's    ";
  12.  
  13.     ecc = 0.9672760;
  14.     incl = 162.23928;
  15.     node = 58.14536;
  16.     argp = 111.84809 + 58.14536;
  17.     mrad = .5871047/(1. - ecc);
  18.     anom = eday - (2446470.95174 - 2415020.);
  19.         motion = .01720209895*sqrt(1./(mrad*mrad*mrad))/radian;
  20.     anom *= motion;
  21.  
  22.     node += 0.4593;
  23.     argp += 0.4066;
  24.  
  25.     anom *= radian;
  26.     incl *= radian;
  27.     node *= radian;
  28.     argp *= radian;
  29.  
  30.     enom = anom + ecc*sin(anom);
  31.     do {
  32.         dele = (anom - enom + ecc * sin(enom)) /
  33.             (1. - ecc*cos(enom));
  34.         enom += dele;
  35.     } while(fabs(dele) > 1.e-8);
  36.     vnom = 2.*atan2(sqrt((1.+ecc)/(1.-ecc))*sin(enom/2.),
  37.         cos(enom/2.));
  38.     rad = mrad*(1. - ecc*cos(enom));
  39.  
  40.     lambda = vnom + argp;
  41.  
  42.     pturbl = 0.;
  43.  
  44.     lambda += pturbl*radsec;
  45.  
  46.     pturbb = 0.;
  47.  
  48.     pturbr = 0.;
  49.  
  50. /*
  51.  *    reduce to the ecliptic
  52.  */
  53.  
  54.     nd = lambda - node;
  55.     lambda = node + atan2(sin(nd)*cos(incl),cos(nd));
  56.  
  57.     sl = sin(incl)*sin(nd) + pturbb*radsec;
  58.     beta = atan2(sl, sqrt(1.-sl*sl));
  59.  
  60.     lograd = pturbr*2.30258509;
  61.     rad *= 1. + lograd;
  62.  
  63.     motion *= radian*mrad*mrad/(rad*rad);
  64.     semi = 0.;
  65.  
  66.     mag = 5.47 + 6.1/2.303*log(rad);
  67.  
  68.     helio();
  69.     geo();
  70. }
  71.